package org.example.annotation;

import java.lang.annotation.*;

/**
 * @description: 自定义防重提交
 * @author: 谢超
 * @date: 2024/7/24 10:28
 */
@Documented
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RepeatSubmit {

    /**
     * 防重提交，支持两种类型
     */
    enum Type {
        /**
         * 参数形式，ip+方法名+类名，存入redis
         */
        PARAM,

        /**
         * 令牌形式
         */
        TOKEN;
    }

    /**
     * 默认的防重提交为参数类型
     * @return
     */
    Type limitType() default Type.PARAM;

    /**
     * 加锁过期时间为5秒
     * @return
     */
    long lockTime() default 5;

}
